#!/usr/bin/env/ node
// 1. 询问用户问题
// 2. 根据用户的问题生成项目目录

// node中询问项目问题需要使用的inquirer
const inquirer = require("inquirer");
const path = require('path');
const fs = require('fs')
const ejs = require('ejs')
// 通过inquirer.prompt在命令行中发起问题提问
inquirer.prompt([
    {
        type: "input",
        name: 'name',
        message: "your project name"
    }
]).then(anwsers => {
    this.anwsers = anwsers
    // 需要导出的模版所在的绝对路径。__dirname表示当前所在文件夹的绝对路径
    const tempDir = path.join(__dirname, 'templates')
    console.log(tempDir);
    // 输出的目标路径,命令行所在的根目录
    const destDir = process.cwd();
    // readdir会自动对参数一目录下的所有文件进行扫描并且返回一个相对于参数一的相对路径的数组
    fs.readdir(tempDir,(err,files) => {
        if(err) throw err
        files.forEach(item => {
            // 需要通过模版引擎渲染到目录
            ejs.renderFile(path.join(tempDir, item), anwsers, (err, result) => {
                fs.writeFileSync(path.join(destDir,item),result)
            })
        })
    })
})
